package com.ibm.cloud.banking.account.entity;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.sql.Date;
import java.sql.Timestamp;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import lombok.Data;

/**
 * replace desc in here
 *
 * @author HanDong
 * @date 2022/7/17
 */
@Data
@Entity
@Table(name = "account_info")
public class AccountInfoEntity {


    @Basic
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Id
    private Long id;
    @Basic
    @Column(name = "account_no")
    private String accountNo;
    @Basic
    @Column(name = "name")
    private String name;
    @Basic
    @Column(name = "currency")
    private String currency;
    @Basic
    @Column(name = "balance")
    private BigDecimal balance;
    @Basic
    @Column(name = "available_balance")
    private BigDecimal availableBalance;
    @Basic
    @Column(name = "freeze_balance")
    private BigDecimal freezeBalance;
    @Basic
    @Column(name = "overdraft_balance")
    private BigDecimal overdraftBalance;
    @Basic
    @Column(name = "customer_no")
    private String customerNo;
    @Basic
    @Column(name = "product_no")
    private String productNo;
    @Basic
    @Column(name = "type")
    private String type;
    @Basic
    @Column(name = "account_category")
    private String accountCategory;
    @Basic
    @Column(name = "status")
    private String status;
    @Basic
    @Column(name = "initial_branch")
    private String initialBranch;
    @Basic
    @Column(name = "initial_amount")
    private BigDecimal initialAmount;
    @Basic
    @Column(name = "initial_date")
    private Date initialDate;
    @Basic
    @Column(name = "detail_count")
    private Integer detailCount;
    @Basic
    @Column(name = "closing_branch")
    private String closingBranch;
    @Basic
    @Column(name = "closing_date")
    private Date closingDate;
    @Basic
    @Column(name = "initial_teller_id")
    private String initialTellerId;
    @Basic
    @Column(name = "closing_teller_id")
    private String closingTellerId;
    @Basic
    @Column(name = "interest_flag")
    private String interestFlag;
    @Basic
    @Column(name = "product_number")
    private BigInteger productNumber;
    @Basic
    @Column(name = "interest_amount")
    private BigInteger interestAmount;
    @Basic
    @Column(name = "trans_password")
    private String transPassword;
    @Basic
    @Column(name = "error_times")
    private Integer errorTimes;
    @Basic
    @Column(name = "query_password")
    private Integer queryPassword;
    @Basic
    @Column(name = "control_status")
    private String controlStatus;
    @Basic
    @Column(name = "create_dt")
    private Timestamp createDt;
    @Basic
    @Column(name = "update_dt")
    private Timestamp updateDt;
    @Basic
    @Column(name = "sharding_id")
    private Integer shardingId;
    @Basic
    @Column(name = "dp_flag")
    private String dpFlag;
    @Basic
    @Column(name = "dw_flag")
    private String dwFlag;
    @Basic
    @Column(name = "drw_type")
    private String drwType;

}
